from colorama import Fore

from ... import DE_VERSION

_BANNERS: dict[
    str,
    dict[str, str]
] = {
    "VIDEO_EDITOR": {
        "display": f"""{Fore.MAGENTA}
                ███████╗██████╗░██╗████████╗  ██╗░░░██╗██╗██████╗░███████╗░█████╗░
                ██╔════╝██╔══██╗██║╚══██╔══╝  ██║░░░██║██║██╔══██╗██╔════╝██╔══██╗
                █████╗░░██║░░██║██║░░░██║░░░  ╚██╗░██╔╝██║██║░░██║█████╗░░██║░░██║
                ██╔══╝░░██║░░██║██║░░░██║░░░  ░╚████╔╝░██║██║░░██║██╔══╝░░██║░░██║
                ███████╗██████╔╝██║░░░██║░░░  ░░╚██╔╝░░██║██████╔╝███████╗╚█████╔╝
                ╚══════╝╚═════╝░╚═╝░░░╚═╝░░░  ░░░╚═╝░░░╚═╝╚═════╝░╚══════╝░╚════╝░
                                Created by HengSok - v{DE_VERSION}
                """,
        "message": r"Example: C:\Users\Name\Desktop\Folder\Video"
    },
    "IMAGE_EDITOR": {
        "display": f"""{Fore.MAGENTA} 
                ███████╗██████╗░██╗████████╗  ██╗███╗░░░███╗░█████╗░░██████╗░███████╗
                ██╔════╝██╔══██╗██║╚══██╔══╝  ██║████╗░████║██╔══██╗██╔════╝░██╔════╝
                █████╗░░██║░░██║██║░░░██║░░░  ██║██╔████╔██║███████║██║░░██╗░█████╗░░
                ██╔══╝░░██║░░██║██║░░░██║░░░  ██║██║╚██╔╝██║██╔══██║██║░░╚██╗██╔══╝░░
                ███████╗██████╔╝██║░░░██║░░░  ██║██║░╚═╝░██║██║░░██║╚██████╔╝███████╗
                ╚══════╝╚═════╝░╚═╝░░░╚═╝░░░  ╚═╝╚═╝░░░░░╚═╝╚═╝░░╚═╝░╚═════╝░╚══════╝
                                    Created by HengSok - v{DE_VERSION}
                """,
        "message": "Select tool to edit images"
    },
    "SOUND_EDITOR": {
        "display": f"""{Fore.MAGENTA}
                ███████╗██████╗░██╗████████╗  ░██████╗░█████╗░██╗░░░██╗███╗░░██╗██████╗░
                ██╔════╝██╔══██╗██║╚══██╔══╝  ██╔════╝██╔══██╗██║░░░██║████╗░██║██╔══██╗
                █████╗░░██║░░██║██║░░░██║░░░  ╚█████╗░██║░░██║██║░░░██║██╔██╗██║██║░░██║
                ██╔══╝░░██║░░██║██║░░░██║░░░  ░╚═══██╗██║░░██║██║░░░██║██║╚████║██║░░██║
                ███████╗██████╔╝██║░░░██║░░░  ██████╔╝╚█████╔╝╚██████╔╝██║░╚███║██████╔╝
                ╚══════╝╚═════╝░╚═╝░░░╚═╝░░░  ╚═════╝░░╚════╝░░╚═════╝░╚═╝░░╚══╝╚═════╝░
                                    Created by HengSok - v{DE_VERSION}
                """,
        "message": "Select tool to edit sounds"	
    },
    "AI_VIDEO_EDITOR": {
        "display": f"""{Fore.MAGENTA}
                ░█████╗░██╗  ██╗░░░██╗██╗██████╗░███████╗░█████╗░  ███████╗██████╗░██╗████████╗░█████╗░██████╗░
                ██╔══██╗██║  ██║░░░██║██║██╔══██╗██╔════╝██╔══██╗  ██╔════╝██╔══██╗██║╚══██╔══╝██╔══██╗██╔══██╗
                ███████║██║  ╚██╗░██╔╝██║██║░░██║█████╗░░██║░░██║  █████╗░░██║░░██║██║░░░██║░░░██║░░██║██████╔╝
                ██╔══██║██║  ░╚████╔╝░██║██║░░██║██╔══╝░░██║░░██║  ██╔══╝░░██║░░██║██║░░░██║░░░██║░░██║██╔══██╗
                ██║░░██║██║  ░░╚██╔╝░░██║██████╔╝███████╗╚█████╔╝  ███████╗██████╔╝██║░░░██║░░░╚█████╔╝██║░░██║
                ╚═╝░░╚═╝╚═╝  ░░░╚═╝░░░╚═╝╚═════╝░╚══════╝░╚════╝░  ╚══════╝╚═════╝░╚═╝░░░╚═╝░░░░╚════╝░╚═╝░░╚═╝
                                                Created by HengSok - v{DE_VERSION}
                """,
        "message": r"Example: C:\Users\Name\Desktop\Folder\Video"
    },
    "AI_IMAGE_EDITOR": {
        "display": f"""{Fore.MAGENTA} 
                ░█████╗░██╗  ██╗███╗░░░███╗░██████╗░  ███████╗██████╗░██╗████████╗░█████╗░██████╗░
                ██╔══██╗██║  ██║████╗░████║██╔════╝░  ██╔════╝██╔══██╗██║╚══██╔══╝██╔══██╗██╔══██╗
                ███████║██║  ██║██╔████╔██║██║░░██╗░  █████╗░░██║░░██║██║░░░██║░░░██║░░██║██████╔╝
                ██╔══██║██║  ██║██║╚██╔╝██║██║░░╚██╗  ██╔══╝░░██║░░██║██║░░░██║░░░██║░░██║██╔══██╗
                ██║░░██║██║  ██║██║░╚═╝░██║╚██████╔╝  ███████╗██████╔╝██║░░░██║░░░╚█████╔╝██║░░██║
                ╚═╝░░╚═╝╚═╝  ╚═╝╚═╝░░░░░╚═╝░╚═════╝░  ╚══════╝╚═════╝░╚═╝░░░╚═╝░░░░╚════╝░╚═╝░░╚═╝
                                            Created by HengSok - v{DE_VERSION}
                """,
        "message": "Select tool to edit images"
    },
    "AI_SOUND_EDITOR": {	
        "display": f"""{Fore.MAGENTA}
                ░█████╗░██╗  ░██████╗░█████╗░██╗░░░██╗███╗░░██╗██████╗░  ███████╗██████╗░██╗████████╗░█████╗░██████╗░
                ██╔══██╗██║  ██╔════╝██╔══██╗██║░░░██║████╗░██║██╔══██╗  ██╔════╝██╔══██╗██║╚══██╔══╝██╔══██╗██╔══██╗
                ███████║██║  ╚█████╗░██║░░██║██║░░░██║██╔██╗██║██║░░██║  █████╗░░██║░░██║██║░░░██║░░░██║░░██║██████╔╝
                ██╔══██║██║  ░╚═══██╗██║░░██║██║░░░██║██║╚████║██║░░██║  ██╔══╝░░██║░░██║██║░░░██║░░░██║░░██║██╔══██╗
                ██║░░██║██║  ██████╔╝╚█████╔╝╚██████╔╝██║░╚███║██████╔╝  ███████╗██████╔╝██║░░░██║░░░╚█████╔╝██║░░██║
                ╚═╝░░╚═╝╚═╝  ╚═════╝░░╚════╝░░╚═════╝░╚═╝░░╚══╝╚═════╝░  ╚══════╝╚═════╝░╚═╝░░░╚═╝░░░░╚════╝░╚═╝░░╚═╝
                """,
        "message": "Select tool to edit sounds"
    },
    "AI_VIDEO_GENERATOR": {
        "display": f"""{Fore.MAGENTA} 
                ░█████╗░██╗  ██╗░░░██╗██╗██████╗░███████╗░█████╗░  ░██████╗░███████╗███╗░░██╗
                ██╔══██╗██║  ██║░░░██║██║██╔══██╗██╔════╝██╔══██╗  ██╔════╝░██╔════╝████╗░██║
                ███████║██║  ╚██╗░██╔╝██║██║░░██║█████╗░░██║░░██║  ██║░░██╗░█████╗░░██╔██╗██║
                ██╔══██║██║  ░╚████╔╝░██║██║░░██║██╔══╝░░██║░░██║  ██║░░╚██╗██╔══╝░░██║╚████║
                ██║░░██║██║  ░░╚██╔╝░░██║██████╔╝███████╗╚█████╔╝  ╚██████╔╝███████╗██║░╚███║
                ╚═╝░░╚═╝╚═╝  ░░░╚═╝░░░╚═╝╚═════╝░╚══════╝░╚════╝░  ░╚═════╝░╚══════╝╚═╝░░╚══╝
                                            Created by HengSok - v{DE_VERSION}
                """,
        "message":"Select Models to generate video"
    }, 
    "AI_IMAGE_GENERATOR": {
        "display": f"""{Fore.MAGENTA} 
                ░█████╗░██╗  ██╗███╗░░░███╗░█████╗░░██████╗░███████╗░░░░░░░██████╗░███████╗███╗░░██╗
                ██╔══██╗██║  ██║████╗░████║██╔══██╗██╔════╝░██╔════╝░░░░░░██╔════╝░██╔════╝████╗░██║
                ███████║██║  ██║██╔████╔██║███████║██║░░██╗░█████╗░░█████╗██║░░██╗░█████╗░░██╔██╗██║
                ██╔══██║██║  ██║██║╚██╔╝██║██╔══██║██║░░╚██╗██╔══╝░░╚════╝██║░░╚██╗██╔══╝░░██║╚████║
                ██║░░██║██║  ██║██║░╚═╝░██║██║░░██║╚██████╔╝███████╗░░░░░░╚██████╔╝███████╗██║░╚███║
                ╚═╝░░╚═╝╚═╝  ╚═╝╚═╝░░░░░╚═╝╚═╝░░╚═╝░╚═════╝░╚══════╝░░░░░░░╚═════╝░╚══════╝╚═╝░░╚══╝
                                            Created by HengSok - v{DE_VERSION}
                """,
        "message":"Select Models to generate images"
    }, 
    "AI_SOUND_GENERATOR": {
        "display": f"""{Fore.MAGENTA} 
                ░█████╗░██╗  ░██████╗░█████╗░██╗░░░██╗███╗░░██╗██████╗░  ░██████╗░███████╗███╗░░██╗
                ██╔══██╗██║  ██╔════╝██╔══██╗██║░░░██║████╗░██║██╔══██╗  ██╔════╝░██╔════╝████╗░██║
                ███████║██║  ╚█████╗░██║░░██║██║░░░██║██╔██╗██║██║░░██║  ██║░░██╗░█████╗░░██╔██╗██║
                ██╔══██║██║  ░╚═══██╗██║░░██║██║░░░██║██║╚████║██║░░██║  ██║░░╚██╗██╔══╝░░██║╚████║
                ██║░░██║██║  ██████╔╝╚█████╔╝╚██████╔╝██║░╚███║██████╔╝  ╚██████╔╝███████╗██║░╚███║
                ╚═╝░░╚═╝╚═╝  ╚═════╝░░╚════╝░░╚═════╝░╚═╝░░╚══╝╚═════╝░  ░╚═════╝░╚══════╝╚═╝░░╚══╝
                                            Created by HengSok - v{DE_VERSION}
                """,
        "message":"Select Models to generate images"
    },
    "VIDEO_DL": {
        "display": f"""{Fore.MAGENTA}
                ██╗░░░██╗██╗██████╗░░░░░░░██████╗░░█████╗░░██╗░░░░░░░██╗███╗░░██╗
                ██║░░░██║██║██╔══██╗░░░░░░██╔══██╗██╔══██╗░██║░░██╗░░██║████╗░██║
                ╚██╗░██╔╝██║██║░░██║█████╗██║░░██║██║░░██║░╚██╗████╗██╔╝██╔██╗██║
                ░╚████╔╝░██║██║░░██║╚════╝██║░░██║██║░░██║░░████╔═████║░██║╚████║
                ░░╚██╔╝░░██║██████╔╝░░░░░░██████╔╝╚█████╔╝░░╚██╔╝░╚██╔╝░██║░╚███║
                ░░░╚═╝░░░╚═╝╚═════╝░░░░░░░╚═════╝░░╚════╝░░░░╚═╝░░░╚═╝░░╚═╝░░╚══╝
                                    Created by HengSok - v{DE_VERSION}
                """,
        "message": "Use arrow key to select the options"
    },
    "TIKTOK_DL": {
            "display": f"""{Fore.MAGENTA} 
                ████████╗██╗██╗░░██╗████████╗░█████╗░██╗░░██╗░░░░░░██████╗░██╗░░░░░
                ╚══██╔══╝██║██║░██╔╝╚══██╔══╝██╔══██╗██║░██╔╝░░░░░░██╔══██╗██║░░░░░
                ░░░██║░░░██║█████═╝░░░░██║░░░██║░░██║█████═╝░█████╗██║░░██║██║░░░░░
                ░░░██║░░░██║██╔═██╗░░░░██║░░░██║░░██║██╔═██╗░╚════╝██║░░██║██║░░░░░
                ░░░██║░░░██║██║░╚██╗░░░██║░░░╚█████╔╝██║░╚██╗░░░░░░██████╔╝███████╗
                ░░░╚═╝░░░╚═╝╚═╝░░╚═╝░░░╚═╝░░░░╚════╝░╚═╝░░╚═╝░░░░░░╚═════╝░╚══════╝
                                Created by HengSok - v{DE_VERSION}
                """,
            "message": "Use arrow key to select the options"
    },
    "DOUYIN_DL": {
        "display": f"""{Fore.MAGENTA}
                ██████╗░░█████╗░██╗░░░██╗██╗░░░██╗██╗███╗░░██╗░░░░░░██████╗░██╗░░░░░
                ██╔══██╗██╔══██╗██║░░░██║╚██╗░██╔╝██║████╗░██║░░░░░░██╔══██╗██║░░░░░
                ██║░░██║██║░░██║██║░░░██║░╚████╔╝░██║██╔██╗██║█████╗██║░░██║██║░░░░░
                ██║░░██║██║░░██║██║░░░██║░░╚██╔╝░░██║██║╚████║╚════╝██║░░██║██║░░░░░
                ██████╔╝╚█████╔╝╚██████╔╝░░░██║░░░██║██║░╚███║░░░░░░██████╔╝███████╗
                ╚═════╝░░╚════╝░░╚═════╝░░░░╚═╝░░░╚═╝╚═╝░░╚══╝░░░░░░╚═════╝░╚══════╝
                                Created by HengSok - v{DE_VERSION}
                """,
        "message": """Ex1: https://v.douyin.com/jqwLHjF/ \nEx2: https://www.douyin.com/user/MS4wLjABAAAARz7MJzxuIgUFeEBer0sy7mMIvZzac"""
    },
    "KUAISHOU_DL": {
        "display": f"""{Fore.MAGENTA} 
                ██╗░░██╗██╗░░░██╗░█████╗░██╗░██████╗██╗░░██╗░█████╗░██╗░░░██╗░░░░░░██████╗░██╗░░░░░
                ██║░██╔╝██║░░░██║██╔══██╗██║██╔════╝██║░░██║██╔══██╗██║░░░██║░░░░░░██╔══██╗██║░░░░░
                █████═╝░██║░░░██║███████║██║╚█████╗░███████║██║░░██║██║░░░██║█████╗██║░░██║██║░░░░░
                ██╔═██╗░██║░░░██║██╔══██║██║░╚═══██╗██╔══██║██║░░██║██║░░░██║╚════╝██║░░██║██║░░░░░
                ██║░╚██╗╚██████╔╝██║░░██║██║██████╔╝██║░░██║╚█████╔╝╚██████╔╝░░░░░░██████╔╝███████╗
                ╚═╝░░╚═╝░╚═════╝░╚═╝░░╚═╝╚═╝╚═════╝░╚═╝░░╚═╝░╚════╝░░╚═════╝░░░░░░░╚═════╝░╚══════╝
                                            Created by HengSok - v{DE_VERSION}
                """,
        "message": """Example Below\nCookie: kpf=PC_WEB; kpn=KUAISHOU_VISION; clientid=3; did=web_dfe556cf2a8....\nUser ID: 3xnpgvvuei3umwk"""
    },
    "YOUTUBE_DL": {
        "display": f"""{Fore.MAGENTA}
                ██╗░░░██╗░█████╗░██╗░░░██╗████████╗██╗░░░██╗██████╗░███████╗░░░░░░██████╗░██╗░░░░░
                ╚██╗░██╔╝██╔══██╗██║░░░██║╚══██╔══╝██║░░░██║██╔══██╗██╔════╝░░░░░░██╔══██╗██║░░░░░
                ░╚████╔╝░██║░░██║██║░░░██║░░░██║░░░██║░░░██║██████╦╝█████╗░░█████╗██║░░██║██║░░░░░
                ░░╚██╔╝░░██║░░██║██║░░░██║░░░██║░░░██║░░░██║██╔══██╗██╔══╝░░╚════╝██║░░██║██║░░░░░
                ░░░██║░░░╚█████╔╝╚██████╔╝░░░██║░░░╚██████╔╝██████╦╝███████╗░░░░░░██████╔╝███████╗
                ░░░╚═╝░░░░╚════╝░░╚═════╝░░░░╚═╝░░░░╚═════╝░╚═════╝░╚══════╝░░░░░░╚═════╝░╚══════╝
                                        Created by HengSok - v{DE_VERSION}
                """,
        "message": """Example: https://www.youtube.com/watch?v=JGwWNGJdvx8"""
    },
}

def get_banner(name: str):
    """
    Returns the banner display and message for a given module.

    Args:
        name (str):
            - `VIDEO_EDITOR`: Video editor module.
            - `IMAGE_EDITOR`: Image editor module.
            - `SOUND_EDITOR`: Sound editor module.
            - `AI_VIDEO_EDITOR`: AI video editor module.
            - `AI_IMAGE_EDITOR`: AI image editor module.
            - `AI_SOUND_EDITOR`: AI sound editor module.
            - `AI_VIDEO_GENERATOR`: AI video generator module.
            - `AI_IMAGE_GENERATOR`: AI image generator module.
            - `AI_SOUND_GENERATOR`: AI sound generator module.
            - `VIDEO_DL`: Video downloader module.
            - `TIKTOK_DL`: TikTok downloader module.
            - `DOUYIN_DL`: Douyin downloader module.
            - `KUAISHOU_DL`: Kuaishou downloader module.
            - `YOUTUBE_DL`: Youtube downloader module.

    Returns:
        - Tuple[str, str]: The banner display and message.
    """
    if name in _BANNERS:
        return _BANNERS[name]["display"], _BANNERS[name]["message"]
    else:
        raise Exception(f"Banner '{name}' not found.")